﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using DevComponents.DotNetBar;
using DevComponents.WinForms;
using System.Data.SqlClient;
using RM2012Server.Model;

namespace RM2012Server.Component
{
    public partial class frmConnection : Office2007Form
    {
        public bool IsSuccess = false;

        public frmConnection()
        {
            InitializeComponent();
        }

        private void frmConnection_Load(object sender, EventArgs e)
        {
            cmbQuyenHan.SelectedIndex = 0;
        }

        private void cmbQuyenHan_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (cmbQuyenHan.SelectedIndex == 0)
            {
                txtTaiKhoan.Enabled = false;
                txtMatKhau.Enabled = false;
            } 
            else
            {
                txtTaiKhoan.Enabled = true;
                txtMatKhau.Enabled = true;
            }
        }

        private void btnTest_Click(object sender, EventArgs e)
        {
            //Quyen Windows
            if (cmbQuyenHan.SelectedIndex == 0)
            {
                cmbDatabase.Items.Clear();
                String sqlConn = "Data Source=" + txtServer.Text + ";Initial Catalog=master;Integrated Security=True;";
                SqlConnection conn = new SqlConnection(sqlConn);
                SqlCommand cmd = new SqlCommand("SP_DATABASES", conn);
                SqlDataReader reader;
                try
                {
                    conn.Open();
                    reader = cmd.ExecuteReader();
                    while (reader.Read())
                    {
                        cmbDatabase.Items.Add(reader[0].ToString());
                    }
                    IsSuccess = true;
                    MessageBoxEx.Show("Kết nối thành công !", "THÔNG BÁO", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                catch
                {
                    MessageBoxEx.Show("Kết nối thất bại ! Vui lòng kiểm tra lại thông tin kết nối !", "THÔNG BÁO", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                finally
                {
                    if (conn.State == ConnectionState.Open)
                    {
                        conn.Close();
                    }
                    conn.Dispose();
                    cmd.Dispose();
                }
            } 
            
            //Quyen SQL Server
            if (cmbQuyenHan.SelectedIndex == 1)
            {
                cmbDatabase.Items.Clear();
                String sqlConn = "Data Source=" + txtServer.Text + ";Initial Catalog=master; User Id=" + txtTaiKhoan.Text + ";Password=" + txtMatKhau.Text + ";";
                SqlConnection conn = new SqlConnection(sqlConn);
                SqlCommand cmd = new SqlCommand("SP_DATABASES", conn);
                SqlDataReader reader;
                try
                {
                    conn.Open();
                    reader = cmd.ExecuteReader();
                    while (reader.Read())
                    {
                        cmbDatabase.Items.Add(reader[0].ToString());
                    }
                    IsSuccess = true;
                    MessageBoxEx.Show("Kết nối thành công !", "THÔNG BÁO", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                catch
                {
                    MessageBoxEx.Show("Kết nối thất bại ! Vui lòng kiểm tra lại thông tin kết nối !", "THÔNG BÁO", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                finally
                {
                    if (conn.State == ConnectionState.Open)
                    {
                        conn.Close();
                    }
                    conn.Dispose();
                    cmd.Dispose();
                }
            }
        }

        private void btnKetNoi_Click(object sender, EventArgs e)
        {
            if (IsSuccess == true)
            {
                if (cmbDatabase.Items.Count > 0)
                {
                    if (cmbQuyenHan.SelectedIndex == 0)
                    {
                        XML.XMLWriter("Connection.xml", txtServer.Text, cmbDatabase.Text, "true");
                    }
                    else
                    {
                        XML.XMLWriter("Connection.xml", txtServer.Text, txtTaiKhoan.Text, txtMatKhau.Text, cmbDatabase.Text, "false");
                    }
                    if (MessageBoxEx.Show("Thiết lập xong, vui lòng khởi động lại chương trình để thiết lập có hiệu lực !", "THÔNG BÁO", MessageBoxButtons.OK, MessageBoxIcon.Information) == DialogResult.OK)
                    {
                        this.Close();
                    }
                } 
                else
                {
                    MessageBoxEx.Show("Cơ sở dữ liệu chưa được chọn ! Nếu danh sách cơ sở dữ liệu rỗng, xin vui lòng điền thông tin đầy đủ và nhấn chọn Kiểm tra kết nối trước khi nhấn Kết nối !", "THÔNG BÁO", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
            } 
            else
            {
                MessageBoxEx.Show("Kết nối chưa được thiết lập ! Vui lòng thực hiện Kiểm tra kết nối trước !", "THÔNG BÁO", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }

        private void btnBoQua_Click(object sender, EventArgs e)
        {
            this.Close();
        }
    }
}
